/*
* @Author: MR.Sun
* @Date: 2022/8/3 11:47
* @File: bufio_use.go
* @Desc:
 */
package main

import (
	"bufio"
	"fmt"
	"io"
	"io/ioutil"
	"os"
)

// 使用ioutill 进行文件的完全读取
func ioUtilReader() {
	content, err := ioutil.ReadFile("./1.txt")
	if err != nil {
		fmt.Printf("读取失败,%#v\n", err)
		return
	}

	fmt.Println(string(content))
}

func main() {
	fmt.Println("io util 读取文件示例===>>>>>")
	ioUtilReader()

	fmt.Println("bufio 读取文件示例=====>>>>")
	// bufio 按行读取示例
	file, err := os.Open("./1.txt")
	if err != nil {
		fmt.Println("open file error ", err)
		return
	}

	defer file.Close()
	reader := bufio.NewReader(file)
	for {
		line, err := reader.ReadString('\n')
		if err == io.EOF {
			if len(line) != 0 {
				fmt.Println(line)
			}
			fmt.Println("读取完成")
			break
		}
		if err != nil {
			fmt.Printf("read failed err %#v\n", err)
		}

		fmt.Println(line)
	}

}
